using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BaseDatos;

namespace SCHD
{
    public partial class WFSoft_Add : TDV.Controles.Base.WinForm.BaseForm_Tipo01
    {
        private string Tipo = "";
        LBIdioma idiMod = new LBIdioma();
        private bool Modificado = true;
        LBFabricante fabMod = new LBFabricante();
        LBTipoSoft tipMod = new LBTipoSoft();
        LBClaseSoft claMod = new LBClaseSoft();
        public WFSoft_Add(string Tipo)
        {
            this.Tipo = Tipo;
            InitializeComponent();
        }

        private void WFSoft_Add_Load(object sender, EventArgs e)
        {
            if (Tipo == "I")
            {
                GrdDatos.DataSource = null;
                this.Text = "Mantenimiento a Idiomas";
                CargaDatos();
            }
            if (Tipo == "F")
            {
                this.Text = "Mantenimiento a Fabricantes";
                CargaDatos();
            }
            if (Tipo == "T")
            {
                this.Text = "Mantenimiento a Tipos";
                CargaDatos();
            }
            if (Tipo == "C")
            {
                this.Text = "Mantenimiento a Clases";
                CargaDatos();
            }
        }

        private void BtnSalir_Click(object sender, EventArgs e)
        {
            if (Modificado == true)
            {
                DialogResult = DialogResult.OK;
            }
            else
            {
                DialogResult = DialogResult.Cancel;
            }
        }

        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            if (Tipo == "I")
            {
                if (TxtDesripcion.Text.Length > 0)
                {
                    try
                    {
                        EBIdioma idi = new EBIdioma();
                        idi.Descripcion = TxtDesripcion.Text.ToUpper();
                        idi.Grabar();
                        CargaDatos();
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
                else
                {
                    foreach (EBIdioma _idioma in idiMod)
                    {
                        _idioma.Grabar();
                    }
                    idiMod.Clear();
                    CargaDatos();
                }
              
            }
            if (Tipo == "F")
            {
                if (TxtDesripcion.Text.Length > 0)
                {
                    try
                    {
                        EBFabricante fab = new EBFabricante();
                        fab.Descripcion = TxtDesripcion.Text.ToUpper();
                        fab.Grabar();
                        CargaDatos();
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
                else
                {
                    foreach (EBFabricante _fab in fabMod)
                    {
                        _fab.Grabar();
                    }
                    fabMod.Clear();
                    CargaDatos();
                }
            }
            if (Tipo == "T")
            {
                if (TxtDesripcion.Text.Length > 0)
                {
                    try
                    {
                        EBTipoSoft tip = new EBTipoSoft();
                        tip.Descripcion = TxtDesripcion.Text.ToUpper();
                        tip.Grabar();
                        CargaDatos();
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
                else
                {
                    foreach (EBTipoSoft _tip in tipMod)
                    {
                        _tip.Grabar();
                    }
                    tipMod.Clear();
                    CargaDatos();
                }
            }
            if (Tipo == "C")
            {
                if (TxtDesripcion.Text.Length > 0)
                {
                    try
                    {
                        EBClaseSoft cla = new EBClaseSoft();
                        cla.Descripcion = TxtDesripcion.Text.ToUpper();
                        cla.Grabar();
                        CargaDatos();
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
                else
                {
                    foreach (EBClaseSoft _cla in claMod)
                    {
                        _cla.Grabar();
                    }
                    claMod.Clear();
                    CargaDatos();
                }
            }
            Modificado = true;
        }
        protected void CargaDatos()
        {
            if (Tipo == "I")
            {
                LBIdioma idioma = new LBIdioma();
                idioma.Buscar();
                if (idioma.Count > 0)
                {
                    GrdDatos.DataSource = idioma;
                    BarraMensaje.Text = "Se han encontrado (" + GrdDatos.Rows.Count + ") registros";
                }
                BtnEliminar.Enabled = GrdDatos.Rows.Count > 0;
            }
            if (Tipo == "F")
            {
                LBFabricante fab = new LBFabricante();
                fab.Buscar();
                if (fab.Count > 0)
                {
                    GrdDatos.DataSource = fab;
                    BarraMensaje.Text = "Se han encontrado (" + GrdDatos.Rows.Count + ") registros";
                }
                BtnEliminar.Enabled = GrdDatos.Rows.Count > 0;
            }
            if (Tipo == "T")
            {
                LBTipoSoft tip = new LBTipoSoft();
                tip.Buscar();
                if (tip.Count > 0)
                {
                    GrdDatos.DataSource = tip;
                    BarraMensaje.Text = "Se han encontrado (" + GrdDatos.Rows.Count + ") registros";
                }
                BtnEliminar.Enabled = GrdDatos.Rows.Count > 0;
            }
            if (Tipo == "C")
            {
                LBClaseSoft clase = new LBClaseSoft();
                clase.Buscar();
                if(clase.Count>0)
                {
                    GrdDatos.DataSource = clase;
                    BarraMensaje.Text = "Se han encontrado (" + GrdDatos.Rows.Count + ") registros";
                }
                BtnEliminar.Enabled = GrdDatos.Rows.Count > 0;
            }
        }

        private void GrdDatos_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (Tipo == "I")
            {
                if (GrdDatos.Columns[e.ColumnIndex].Name != null)
                {
                    // Se toma la fila seleccionada 
                    if (e.RowIndex > -1)
                    {
                        DataGridViewRow row = GrdDatos.Rows[e.RowIndex];
                        string Codigo = row.Cells[0].Value.ToString();
                        string Descripcion = row.Cells[1].Value.ToString();
                        EBIdioma idiom_ = new EBIdioma();
                        idiom_.Codigo = Codigo;
                        idiom_.Descripcion = Descripcion;
                        idiMod.Nuevo(idiom_);
                    }
                }
            }
            if (Tipo == "F")
            {
                if (GrdDatos.Columns[e.ColumnIndex].Name != null)
                {
                    // Se toma la fila seleccionada 
                    if (e.RowIndex > -1)
                    {
                        DataGridViewRow row = GrdDatos.Rows[e.RowIndex];
                        string Codigo = row.Cells[0].Value.ToString();
                        string Descripcion = row.Cells[1].Value.ToString();
                        EBFabricante fab_ = new EBFabricante();
                        fab_.Codigo = Codigo;
                        fab_.Descripcion = Descripcion;
                        fabMod.Nuevo(fab_);
                    }
                }
            }
            if (Tipo == "T")
            {
                if (GrdDatos.Columns[e.ColumnIndex].Name != null)
                {
                    // Se toma la fila seleccionada 
                    if (e.RowIndex > -1)
                    {
                        DataGridViewRow row = GrdDatos.Rows[e.RowIndex];
                        string Codigo = row.Cells[0].Value.ToString();
                        string Descripcion = row.Cells[1].Value.ToString();
                        EBTipoSoft tip_ = new EBTipoSoft();
                        tip_.Codigo = Codigo;
                        tip_.Descripcion = Descripcion;
                        tipMod.Nuevo(tip_);
                    }
                }
            }
            if (Tipo == "C")
            {
                if (GrdDatos.Columns[e.ColumnIndex].Name != null)
                {
                    // Se toma la fila seleccionada 
                    if (e.RowIndex > -1)
                    {
                        DataGridViewRow row = GrdDatos.Rows[e.RowIndex];
                        string Codigo = row.Cells[0].Value.ToString();
                        string Descripcion = row.Cells[1].Value.ToString();
                        EBClaseSoft cla_ = new EBClaseSoft();
                        cla_.Codigo = Codigo;
                        cla_.Descripcion = Descripcion;
                        claMod.Nuevo(cla_);
                    }
                }
            }
        }

        private void BtnEliminar_Click(object sender, EventArgs e)
        {
            if (Tipo == "I")
            {
                EBIdioma idi = new EBIdioma();
                idi.Eliminar(((EBIdioma)GrdDatos.CurrentRow.DataBoundItem));
                CargaDatos();
            }
            if (Tipo == "F")
            {
                EBFabricante fab = new EBFabricante();
                fab.Eliminar(((EBFabricante)GrdDatos.CurrentRow.DataBoundItem));
                CargaDatos();
            }
            if (Tipo == "T")
            {
                EBTipoSoft tip = new EBTipoSoft();
                tip.Eliminar((EBTipoSoft)GrdDatos.CurrentRow.DataBoundItem);
                CargaDatos();
            }
            if (Tipo == "C")
            {
                EBClaseSoft cla = new EBClaseSoft();
                cla.Eliminar((EBClaseSoft)GrdDatos.CurrentRow.DataBoundItem);
                CargaDatos();
            }
            Modificado = true;
        }

        private void TxtDesripcion_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                BtnGuardar_Click(sender, e);
            }
        }

    }
}

